package java03;

//终极目标：功能复用
class A {
    private int a;

    //....
    // 被复用的功能
    public void f() {
        // 已经实现了具体的功能，代码省略
    }
}

// B 继承于 A，B为子类型、A为父类型
// 子类型B 依赖于 父类型A
class B extends A {
    public void f() {
        super.f();//子类型复用父类型的功能
    }
}
// C是一个整体类 A是一个局部类，
// 整体类C依赖于局部类A
class C {
    private A obj;
    public C(){
        obj = new A();
    }
    public void f() {
        obj.f();//整体类复用局部类的功能
    }
}

// 通过参数传递的方式实现功能复用
class D {
    public void f(A obj) {
        obj.f();//复用obj中的功能f()
    }
}



class Swing {
}

class Leg {
}
// Bird是整体类，Swing和Leg是局部类
class Bird {
    private Swing swing1;
    private Swing swing2;
    private Leg leg1;
    private Leg leg2;
    //。。。。
}

class Cpu {
}

class Memory {
}
// Computer是整体类，Cpu和Memory是局部类
class Computer {
    private Cpu cpu;
    private Memory memory;
    //。。。。
}


public class Test {


}
